DECL_CYC_COUNTER(non_succ_put);
DECL_CYC_COUNTER(flush);
DECL_CYC_COUNTER(flush_obj);
-#ifdef COMPARE_COPY_PAGE_SSE2
-EXTERN_CYC_COUNTER(pg_copy1);
-EXTERN_CYC_COUNTER(pg_copy2);
-EXTERN_CYC_COUNTER(pg_copy3);
-EXTERN_CYC_COUNTER(pg_copy4);
-#else
EXTERN_CYC_COUNTER(pg_copy);
-#endif
DECL_CYC_COUNTER(compress);
DECL_CYC_COUNTER(decompress);
n += SCNPRINTF_CYC_COUNTER(info+n,BSIZE-n,non_succ_put,"p");
n += SCNPRINTF_CYC_COUNTER(info+n,BSIZE-n,flush,"F");
n += SCNPRINTF_CYC_COUNTER(info+n,BSIZE-n,flush_obj,"O");
-#ifdef COMPARE_COPY_PAGE_SSE2
- n += SCNPRINTF_CYC_COUNTER(info+n,BSIZE-n,pg_copy1,"1");
- n += SCNPRINTF_CYC_COUNTER(info+n,BSIZE-n,pg_copy2,"2");
- n += SCNPRINTF_CYC_COUNTER(info+n,BSIZE-n,pg_copy3,"3");
- n += SCNPRINTF_CYC_COUNTER(info+n,BSIZE-n,pg_copy4,"4");
-#else
n += SCNPRINTF_CYC_COUNTER(info+n,BSIZE-n,pg_copy,"C");
-#endif
n += SCNPRINTF_CYC_COUNTER(info+n,BSIZE-n,compress,"c");
n += SCNPRINTF_CYC_COUNTER(info+n,BSIZE-n,decompress,"d");
n--; /* overwrite trailing comma */
EXPORT atomic_t freeable_page_count = ATOMIC_INIT(0);
-#ifdef COMPARE_COPY_PAGE_SSE2
-DECL_CYC_COUNTER(pg_copy1);
-DECL_CYC_COUNTER(pg_copy2);
-DECL_CYC_COUNTER(pg_copy3);
-DECL_CYC_COUNTER(pg_copy4);
-#else
DECL_CYC_COUNTER(pg_copy);
-#endif
/* these are a concurrency bottleneck, could be percpu and dynamically
* allocated iff opt_tmem_compress */
static DEFINE_PER_CPU_READ_MOSTLY(unsigned char *, dstmem);
static DEFINE_PER_CPU_READ_MOSTLY(void *, scratch_page);
-#ifdef COMPARE_COPY_PAGE_SSE2
-#include <asm/flushtlb.h> /* REMOVE ME AFTER TEST */
-#include <asm/page.h> /* REMOVE ME AFTER TEST */
-#endif
void tmh_copy_page(char *to, char*from)
{
-#ifdef COMPARE_COPY_PAGE_SSE2
- DECL_LOCAL_CYC_COUNTER(pg_copy1);
- DECL_LOCAL_CYC_COUNTER(pg_copy2);
- DECL_LOCAL_CYC_COUNTER(pg_copy3);
- DECL_LOCAL_CYC_COUNTER(pg_copy4);
- *to = *from; /* don't measure TLB misses */
- flush_area_local(to,FLUSH_CACHE|FLUSH_ORDER(0));
- flush_area_local(from,FLUSH_CACHE|FLUSH_ORDER(0));
- START_CYC_COUNTER(pg_copy1);
- copy_page_sse2(to, from); /* cold cache */
- END_CYC_COUNTER(pg_copy1);
- START_CYC_COUNTER(pg_copy2);
- copy_page_sse2(to, from); /* hot cache */
- END_CYC_COUNTER(pg_copy2);
- flush_area_local(to,FLUSH_CACHE|FLUSH_ORDER(0));
- flush_area_local(from,FLUSH_CACHE|FLUSH_ORDER(0));
- START_CYC_COUNTER(pg_copy3);
- memcpy(to, from, PAGE_SIZE); /* cold cache */
- END_CYC_COUNTER(pg_copy3);
- START_CYC_COUNTER(pg_copy4);
- memcpy(to, from, PAGE_SIZE); /* hot cache */
- END_CYC_COUNTER(pg_copy4);
-#else
DECL_LOCAL_CYC_COUNTER(pg_copy);
START_CYC_COUNTER(pg_copy);
memcpy(to, from, PAGE_SIZE);
END_CYC_COUNTER(pg_copy);
-#endif
}
#if defined(CONFIG_ARM)